Programming NVM cells uses a large amount of current per bit. In many NVM devices the current is provided by a charge pump. To ensure enough current is available for programming the NVM cells under worse case conditions many NVM designs will include an oversized charge pump. In some applications a charge pump that is designed for worse case conditions may still be too weak for NVM cell programming because of process variation or a marginal supply voltage.